package main

import (
	"fmt"
	"time"
)

func main() {
	var a int = 100
	var b int = 200
	if a > b {
		fmt.Println("a > b")
	} else if a < b {
		fmt.Println("a < b")
	} else {
		fmt.Println("a == b")
	}

	// 实现一个switch语句
	switch a {
	case 100:
		fmt.Println("a == 100")
	case 200:
		fmt.Println("a == 200")
	default:
		fmt.Println("a != 100 && a != 200")
	}

	// 实现一个 select 语句
	c1 := make(chan string)
	c2 := make(chan string)

	go func() {
		time.Sleep(1 * time.Second)
		c1 <- "one"
	}()
	go func() {
		time.Sleep(2 * time.Second)
		c2 <- "two"
	}()

	//for i := 0; i < 2; i++ {
	//	select {
	//	case msg1 := <-c1:
	//		fmt.Println("received", msg1)
	//	case msg2 := <-c2:
	//		fmt.Println("received", msg2)
	//	}
	//}

	// 不断执行
	for {
		select {
		case msg1 := <-c1:
			fmt.Println(msg1)
		case msg2 := <-c2:
			fmt.Println(msg2)
		default:
			// 如果两个通道都没有可用的数据，则执行这里的语句
			fmt.Println("no message received")
		}
	}
}
